package com.tianji.learning.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tianji.api.dto.leanring.LearningLessonDTO;
import com.tianji.learning.domain.dto.LearningRecordFormDTO;
import com.tianji.learning.domain.po.LearningRecord;

/**
 * <p>
 * 学习记录表 服务类
 * </p>
 *
 * @author zr
 * @since 2024-07-11
 */
public interface ILearningRecordService extends IService<LearningRecord> {

    /**
     * 根据课程ID查询学习记录。
     * <p>
     * 本方法通过课程ID检索与该课程相关的学习记录详情。学习记录数据传输对象（DTO）
     * 包含了学习记录的详细信息
     *
     * @param courseId 课程的唯一标识ID。此ID用于精确匹配课程学习记录。
     * @return LearningLessonDTO 学习记录的数据传输对象，包含了关于学习进度和表现的详细信息。
     */
    LearningLessonDTO queryLearningRecordByCourse(Long courseId);


    /**
     * 添加学习记录。
     *
     * 通过此方法，可以将学习记录的相关信息存储到数据库中。
     * 学习记录对于跟踪用户学习进度和分析学习效果至关重要。
     *
     * @param formDTO 学习记录的表单数据传输对象。包含了关于学习记录的详细信息，
     *                如学习内容、学习时间等。这个参数不允许为空，否则无法正确添加学习记录。
     */
    void addLearningRecord(LearningRecordFormDTO formDTO);
}
